/* 
什么是递归
如果 一个函数在内部可以调用其本身，那么这个函数就是 递归函数。
简单理解:函数内部自己调用自己, 这个函数就是递归函数。
递归函数的作用和循环效果一样。

由于递归很容易发生 “栈溢出” 错误（stack overflow），所以必须要加退出条件 return。
*/

//利用递归求阶乘
let factorial = function(n) {
  if (n == 0 || n == 1) return 1;
  return n * factorial(n - 1);
}
console.log(factorial(3));
//利用递归求斐波那契数列第几个数的值(兔子序列)  1 1 2 3 5 8 13 21 ……
let fibonacci = function(n) {
  if (n < 2) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
};
console.log(fibonacci(6));
let arr = []
for (let i = 1; i <= 6; i++) {
  arr.push(fibonacci(i))
}
console.log(arr);